import { flavorData } from "./inlineEntityDefines"


export interface Employee {
  username: string
  password: string
}

export interface EmployeeLoginReqForm {
  username: string
  password: string
}

export interface EmployeeLoginResData {
  id: string
  username: string
  password: string
  phone: string
  sex: string
  idNumber:string
  status: number
  name: string
}

// 
export interface EmployeeListReqForm {
  page: number
  pageSize: number
  name?: string
}

export interface EmployeeGetSingleReqForm {
  id: string
}

export interface EmployeeListResForm {
  records:EmployeeLoginResData[]
  total:number
  size:number
  current:number
  pages:number
  searchCount:number
}

export interface listenObject {
  EmployeeListRes: EmployeeListResForm
}

export interface EmployeeAddReqForm {
  id: string
  username: string
  phone: string
  sex: string
  idNumber:string
  name: string
}

export interface EmployeeAddReqFormWrapper {
  data:EmployeeAddReqForm
}

export interface commonResponse {
  data:string
}

export interface EmployeeStateUpdateReq {
  id: string
  status: number
}

// --------- category ---------

export interface CategoryListReqForm {
  page: number
  pageSize: number
  name?: string
}

export interface CategoryListByTypeReqForm {
  type: number
}

export interface CategoryListResForm {
  records:CategoryListItem[]
}

export interface CategoryListItem {
  id:string
  type:number
  name:string
  sort:number
  createTime: string
  updateTime: string
  createUser:string
  updateUser:string
}

export interface CategoryListResListenObject {
  res: CategoryListResForm
}

export interface CategoryListResForm {
  records:CategoryListItem[]
  total:number
  size:number
  current:number
  pages:number
  searchCount:number
}

export interface CategoryAddReqForm {
  type:number
  name:string
  sort:number
}
export interface CategoryAddReqFormWrapper {
  data:CategoryAddReqForm
}


// --------- dish ---------

export interface DishListReqForm {
  page: number
  pageSize: number
  name?: string
}

export interface DishListItem {
  id:string
  categoryId:string
  categoryName:string
  name:string
  price:string
  code:string
  image:string
  description:string
  status:number
  sort:number
  createTime: Date
  updateTime:Date
  createUser:string
  updateUser:number
}

export interface DishListResListenObject {
  res: DishListResForm
}

export interface DishListResForm {
  records:DishListItem[]
  total:number
  size:number
  current:number
  pages:number
  searchCount:number
}

export interface DishAddReqForm {
  id: string
  name:string
  categoryId:string
  price: number
  code:string
  image:string
  description:string
  status:number
  sort:number
  flavors:flavorData[]
}

export interface DishAddReqFormWrapper {
  data:DishAddReqForm
}

export interface DishSingleReqForm {
  id: string
}

export interface DishByCategoryReqForm {
  categoryId: string
}

export interface DishSingleResForm {
  id: string
  name:string
  categoryId:string
  price: number
  code:string
  image:string
  description:string
  status:number
  sort:number
  categoryName: string
  flavors:flavorData[]
}


// --------- setmeal ---------
export interface SetmealListReqForm {
  page: number
  pageSize: number
  name?: string
}

export interface SetmealListResForm {
  records:SetmealListItem[]
  total:number
  size:number
  current:number
  pages:number
  searchCount:number
}

export interface SetmealListItem {
  id:string
  categoryId:string
  categoryName:string
  name:string
  price:string
  code:string
  image:string
  description:string
  status:number
  setmealDishes:SetmealDishItem[]
  createTime: Date
  updateTime:Date
  createUser:string
  updateUser:number
}

export interface SetmealListResListenObject {
  data: SetmealListResForm
}

export interface SetmealAddReqForm {
  id: string
  categoryId: string
  name?: string
  price: number
  image: string
  description: string
  status: number
  setmealDishes: SetmealDishItem[]
}

export interface SetmealDishItem {
  name: string
  setmealId?: string
  dishId: string
  copies: number
  price: number
}

export interface SetmealDishTransItem {
  id: string
  name: string
  count: number
  price: number
}

export interface SetmealAddReqFormWrapper { 
  data:SetmealAddReqForm
}

export interface SetmealSingleReqForm {
  setmealId: string
}

// ----------
export interface SetmealCascaderItem {
  id:string
  name:string
  leaf:boolean
}


// ----------